const express = require('express')
const db = require('../databases/index')
const utility = require('utility')
const router = express.Router()
const jwt = require('jsonwebtoken')
// 非空校验 在获取请求体之后，路由之前
router.use((req, res, next) => {
    let { username, password } = req.body
    // 分别判断username和password
    if (/^\S{6,10}$/.test(username) == false || username == undefined) {
        // return res.send({staus:1,message:'用户名必须是6到10位的非空白字符！'})
        throw new Error({ staus: 1, message: '用户名必须是6到10位的非空白字符！' })
    }
    if (/^\S{6,10}$/.test(password) == false || password == undefined) {
        // return res.send({staus:1,message:'用户名必须是6到10位的非空白字符！'})
        throw new Error({ staus: 1, message: '用户密码必须是6到10位的非空白字符！' })
    }
    // 流转到路由或其他中间件
    next()
})

router.post('/reguser', (req, res) => {
    let { username, password } = req.body
    password = utility.md5(password)  //防止脏数据
    let sql = `select * from user where username="${username}"`
    db(sql, (err, results) => {
        if (err) {
            return res.send('sql语句错误' + err.message)
        }
        if (results.length > 0) {
            return res.send('用户名重复，请选择其他用户名')
        }
        // 校验成功
        // 添加 ,查询完才可以添加
        let sql = `insert into user set username="${username}",password="${password}"` //let 暂时循环死区
        db(sql, (err, results) => {
            if (err) {
                return res.send('sql语句错误' + err.message)
            }
            if (results.affectedRows !== 1) {
                return res.send('添加失败！')
            }
            res.send('恭喜您！，注册成功')

        })
    })
})
router.post('/login', (req, res) => {
    let { username, password } = req.body
    password = utility.md5(password)  //防止脏数据
    let sql = `select * from user where username="${username}"`
    db(sql, (err, results) => {
        if (err) {
            return res.send({ status: 1, message: err.message })
        }
        if (results.length === 0) {
            return res.send({ status: 1, message: '用户名或密码错误！' })
        }
        // 校验成功 加token
        const token = 'Bearer ' + jwt.sign({ id: results[0].id }, 'dijia', { expiresIn: '24h' })

        res.send({ status: 0, message: '恭喜您！登录成功', token: token })

    })

})

module.exports=router
